//
//  ADFeedTemplate.h
//  ADSDK
//
//  Created by 悦帅 on 2025/6/3.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@protocol ADFeedTemplateDelegate;
@class ADSDKError;

NS_ASSUME_NONNULL_BEGIN

@interface ADFeedTemplate : NSObject

@property (nonatomic, copy, readonly) NSString *spaceID;
@property (nonatomic, copy, readonly) NSString *spaceParam;

@property (nonatomic, weak) id<ADFeedTemplateDelegate> delegate;

@property (nonatomic, assign) NSInteger eCPM;
/// 广告视图
@property (nonatomic, strong, readonly) UIView *adView;

/**
 初始化方法
 @param spaceID 广告位 ID
 @param spaceParam 广告位参数 可填写任意字符串
 @param lifeTime 给予广告请求时间 单位：秒，不小于3s
 @return 广告对象
 */
- (instancetype)initWithSpaceID:(NSString *)spaceID
                     spaceParam:(NSString *__nullable)spaceParam
                       lifeTime:(uint64_t)lifeTime;

/**
 请求加载广告，用此方法load（主线程）
 @param width  加载广告视图的宽度，需要获取广告高度，保证广告全部可见
 */
- (void)loadFeedAdWithExpectWidth:(CGFloat)width;

@end

/**
 代理方法
 */
@protocol ADFeedTemplateDelegate <NSObject>

@optional
/**
 广告请求成功
 */
- (void)feedTemplateDidLoad:(ADFeedTemplate *)adFeedTemplate;

/**
 广告请求失败
 */
- (void)feedTemplate:(ADFeedTemplate *)adFeedTemplate didFailToLoadAdWithError:(ADSDKError *)error;

/**
 广告显示
 */
- (void)feedTemplateDidShow:(ADFeedTemplate *)adFeedTemplate;

/**
 广告点击
 */
- (void)feedTemplateDidClick:(ADFeedTemplate *)adFeedTemplate;

/**
 广告点击关闭
 */
- (void)feedTemplateDislikeDidClick:(ADFeedTemplate *)adFeedTemplate;

/**
 广告落地页展示
 */
- (void)feedTemplateDidShowOtherController:(ADFeedTemplate *)adFeedTemplate;

/**
 广告落地页关闭
 */
- (void)feedTemplateDidCloseOtherController:(ADFeedTemplate *)adFeedTemplate;

@end


NS_ASSUME_NONNULL_END
